GtkCssProvider: Parse default/sorted region flags.
authorCarlos Garnacho <carlosg@gnome.org>
Tue, 19 Oct 2010 11:00:07 +0000 (13:00 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Sat, 4 Dec 2010 14:38:22 +0000 (15:38 +0100)
gtk/gtkcssprovider.c

index 1a1c4b2fb2d7bcbb943ccaefa8dde1657572ae72..e70ee14b7fde3f0a0eded9f2a8ef7bf90e75be3a 100644 (file)
@@ -469,6 +469,8 @@ enum ParserSymbol {
   SYMBOL_NTH_CHILD = GTK_STATE_LAST,
   SYMBOL_FIRST_CHILD,
   SYMBOL_LAST_CHILD,
+  SYMBOL_DEFAULT_CHILD,
+  SYMBOL_SORTED_CHILD,
 
   /* Scope: nth-child */
   SYMBOL_NTH_CHILD_EVEN,
@@ -695,6 +697,8 @@ create_scanner (void)
   g_scanner_scope_add_symbol (scanner, SCOPE_PSEUDO_CLASS, "nth-child", GUINT_TO_POINTER (SYMBOL_NTH_CHILD));
   g_scanner_scope_add_symbol (scanner, SCOPE_PSEUDO_CLASS, "first-child", GUINT_TO_POINTER (SYMBOL_FIRST_CHILD));
   g_scanner_scope_add_symbol (scanner, SCOPE_PSEUDO_CLASS, "last-child", GUINT_TO_POINTER (SYMBOL_LAST_CHILD));
+  g_scanner_scope_add_symbol (scanner, SCOPE_PSEUDO_CLASS, "default", GUINT_TO_POINTER (SYMBOL_DEFAULT_CHILD));
+  g_scanner_scope_add_symbol (scanner, SCOPE_PSEUDO_CLASS, "sorted", GUINT_TO_POINTER (SYMBOL_SORTED_CHILD));
 
   g_scanner_scope_add_symbol (scanner, SCOPE_NTH_CHILD, "even", GUINT_TO_POINTER (SYMBOL_NTH_CHILD_EVEN));
   g_scanner_scope_add_symbol (scanner, SCOPE_NTH_CHILD, "odd", GUINT_TO_POINTER (SYMBOL_NTH_CHILD_ODD));
@@ -1307,6 +1311,10 @@ parse_nth_child (GtkCssProvider *css_provider,
     *flags = GTK_REGION_FIRST;
   else if (symbol == SYMBOL_LAST_CHILD)
     *flags = GTK_REGION_LAST;
+  else if (symbol == SYMBOL_DEFAULT_CHILD)
+    *flags = GTK_REGION_DEFAULT;
+  else if (symbol == SYMBOL_SORTED_CHILD)
+    *flags = GTK_REGION_SORTED;
   else
     {
       *flags = 0;
@@ -1453,7 +1461,9 @@ parse_selector (GtkCssProvider  *css_provider,
 
               if (symbol == SYMBOL_FIRST_CHILD ||
                   symbol == SYMBOL_LAST_CHILD ||
-                  symbol == SYMBOL_NTH_CHILD)
+                  symbol == SYMBOL_NTH_CHILD ||
+                  symbol == SYMBOL_DEFAULT_CHILD ||
+                  symbol == SYMBOL_SORTED_CHILD)
                 {
                   GTokenType token;